{
    //传统的异步操作

    // let ajax = function (callback) {
    //     //利用settimeout模拟异步操作
    //     setTimeout(function () {
    //         //这里就是1秒以后执行这个回调函数
    //         callback();
    //     }, 1000)
    // };
    // let ajax2 = function (callback) {
    //     //利用settimeout模拟异步操作
    //     setTimeout(function () {
    //         //这里就是1秒以后执行这个回调函数
    //         callback();
    //     }, 1000)
    // };
    // let ajax3 = function (callback) {
    //     //利用settimeout模拟异步操作
    //     setTimeout(function () {
    //         //这里就是1秒以后执行这个回调函数
    //         callback();
    //     }, 1000)
    // };
    // //如果我们想顺序执行异步操作的话,就比较麻烦了
    //
    // //这个就是异步函数的嵌套
    // ajax(function () {
    //     alert('我执行相应操作11啦!');
    //     ajax2(function () {
    //         alert('我执行相应操作22啦!');
    //         ajax3(function () {
    //             alert('我执行相应操作33啦!');
    //         })
    //     })
    // });

}

{
    // //Promise的使用
    // let ajax=function () {
    //     console.log("执行2");
    //     return new Promise(function (resolve, reject) {
    //         setTimeout(function () {
    //             //使用resolve()来触发传值
    //             resolve(123)
    //         },1000)
    //     })
    // };
    //
    // //then接收两个函数,第一个函数对应着res
    // //第二个函数处理rej
    // ajax().then(function (e) {
    //     console.log(e);
    //
    //     return new Promise(function (resolve, reject) {
    //
    //         setTimeout(function () {
    //             throw new Error("错误啦!!!");
    //         },1000)
    //
    //     })
    // }).then(function (e) {
    //     console.log(e);
    // }).catch(function (err) {
    //     console.log("错误信息为",err)
    // })

}

{
    //所有图片加载完再加载页面
    function loadImg(src) {
        return new Promise((resolve, reject)=>{
            let img=document.createElement('img');
            img.src=src;
            //这个相当于图片加载完成
            img.onload=function () {
                resolve(img);
            };
            img.onerror=function () {
                reject(img);
            }
        });
    }
    
    function showImgs(imgs) {
        imgs.forEach(function (img) {
            document.body.appendChild(img);
        })
    }

    Promise.all([
        loadImg("http://www.zztj88.com/file/img/20170419/20170419173851_7782.jpg"),
        loadImg("http://www.zztj88.com/file/img/20170511/20170511100622_1631.png"),
        loadImg("http://www.zztj88.com/file/img/20170420/20170420144445_6374.jpg")
    ]).then(showImgs);

}


{
    function success() {
        return new Promise((resolve, reject)=>{
            setTimeout(function () {
                resolve('加载成功啦!!!');
            },1000)

        })
    }
    function fail() {

        return new Promise((resolve, reject)=>{
            setTimeout(function () {
                reject('加载失败!!!!');
                reject('加载失败!!!!2222');
            },500);

        })
    }

    Promise.race([success(),success(),fail()]).then(function (data) {
        console.log(data);
    }).catch(function (e) {
        console.log(e);
    })


}

































































































